package net.lab1024.sa.base.utils;//package net.lab1024.sa.base.utils;

public class PasswordGenerator {

    public static void main(String[] args) {
        // 运行此方法生成加密密码
        generateEncryptedPasswords();
    }

    /**
     * 生成所有密码的加密版本
     */
    public static void generateEncryptedPasswords() {
        System.out.println("=== 密码加密生成工具 ===");
        System.out.println("请将以下加密后的密码替换到配置文件中：");
        System.out.println();

        // 数据库密码
        String dbPassword = "keji@123";
        String encryptedDbPassword = JasyptUtil.encrypt(dbPassword);
        System.out.println("数据库密码:");
        System.out.println("  原始密码: " + dbPassword);
        System.out.println("  加密密码: " + encryptedDbPassword);
        System.out.println("  配置文件格式: password: ENC(" + encryptedDbPassword + ")");
        System.out.println();

        // Druid密码
        String druidPassword = "1024lab";
        String encryptedDruidPassword = JasyptUtil.encrypt(druidPassword);
        System.out.println("Druid密码:");
        System.out.println("  原始密码: " + druidPassword);
        System.out.println("  加密密码: " + encryptedDruidPassword);
        System.out.println("  配置文件格式: password: ENC(" + encryptedDruidPassword + ")");
        System.out.println();

        // Kafka密码
        String kafkaPassword = "8hasdAQU6!@#zXMP9A";
        String encryptedKafkaPassword = JasyptUtil.encrypt(kafkaPassword);
        System.out.println("Kafka密码:");
        System.out.println("  原始密码: " + kafkaPassword);
        System.out.println("  加密密码: " + encryptedKafkaPassword);
        System.out.println("  配置文件格式: password: ENC(" + encryptedKafkaPassword + ")");
        System.out.println();

        // Redis密码（当前为空）
        String redisPassword = "";
        String encryptedRedisPassword = JasyptUtil.encrypt(redisPassword);
        System.out.println("Redis密码:");
        System.out.println("  原始密码: (空)");
        System.out.println("  加密密码: " + encryptedRedisPassword);
        System.out.println("  配置文件格式: password: ENC(" + encryptedRedisPassword + ")");
        System.out.println();

        // 邮件密码
        String mailPassword = "LAB1024LAB";
        String encryptedMailPassword = JasyptUtil.encrypt(mailPassword);
        System.out.println("邮件密码:");
        System.out.println("  原始密码: " + mailPassword);
        System.out.println("  加密密码: " + encryptedMailPassword);
        System.out.println("  配置文件格式: password: ENC(" + encryptedMailPassword + ")");
        System.out.println();

        System.out.println("=== 使用说明 ===");
        System.out.println("1. 将上述加密密码替换到 sa-base.yaml 配置文件中");
        System.out.println("2. 确保 JasyptConfig 配置类已正确配置");
        System.out.println("3. 生产环境建议通过环境变量 JASYPT_PASSWORD 设置加密密钥");
        System.out.println("4. 启动应用时确保加密密钥正确");
    }
}
